<?php

namespace app\api\model;


class Theme extends BaseModel
{
	protected $hidden = ['delete_time', 'update_time', 'topic_img_id', 'head_img_id'];

	public function topicImg(){
		// 一个模型中，包含外键的，就在这个模型定义成belongsTo()。如果这个表没有外键，就定义成hasOne()。
		// 操作哪个关联模型，就在哪个模型中定义关系。
		// $this->belongsTo(),$this->hasOne()这两个都代表一对一。是一个主从关系。一对一。不能互换，也不是对等的。
		return $this->belongsTo('Image', 'topic_img_id', 'id');
	}

	public function headImg(){
		return $this->belongsTo('Image', 'head_img_id', 'id');
	}

	public function products(){
		return $this->belongsToMany('product','theme_product','product_id','theme_id');
	}

	public static function getThemeWithProducts($id){
		// 先定义好关联模型 ，再调用。
		$theme = self::with(['products', 'topicImg', 'headImg'])->find($id);//这里是新版本写法，与视频教程不一样。
		return $theme;
	}
}
